Sharing of access to physical disk storage and virtualization of input/output (I/O) address space is commonly addressed by distributed logical volume managers which provide a logical view of the physical disk address space that is shared. Such volume managers require a means of maintaining a common definition of the logical-to-physical address mapping. This maintenance of a common definition typically requires some form of distributed locking and metadata communication among the cooperating nodes. Such locking and metadata communication has proven difficult to provide in a high performance manner for environments with large node counts and heterogeneous shared storage.
Data management services, such as creation of point-in-time copies, data migration, and data replication on shared access volumes, represent another area of concern in shared access environments. Providing these data management services becomes increasingly difficult to implement and maintain in a shared access environment using distributed logical volumes.
Another approach to maintenance of a common definition of a logical-to-physical address mapping has been the use of inline virtualizing appliances. While inline virtualizing appliances do not require communication among the client nodes that are sharing access to the shared storage to provide a shared definition of the logical storage address space, they introduce an additional processing hop between the client nodes and the physical storage subsystems. This hop produces extra I/O latency and does not scale well for large numbers of nodes sharing access through the appliance to the same shared storage. Because these inline virtualizing appliances are directly in the I/O path, they must communicate between themselves to maintain a consistent I/O addressing translation across a set of appliances. Accordingly, these appliances do not scale well to very large node counts because of the communication overhead required to maintain the consistent I/O addressing translation. When such appliances implement data mobility functions, they typically require an external agency to coordinate I/O actions, introducing an additional communication latency for I/O operations which require mobility services. This latter scaling and performance issue is not resolved by appliances which use hardware-based acceleration (HBA) devices to alleviate the dual hop I/O latency problems.
Inline appliances also restrict I/O to those storage devices which have been qualified for the appliances I/O drivers and HBA hardware. The burden of qualifying such hardware and software for the broad range of available storage devices is costly and time consuming.
Accordingly, in light of these difficulties associated with conventional access to shared storage there exists a need for improved methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes.